package cn.xianshu.mq._05_potics;

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * 生产者
 *
 * 1.创建链接
 * 	2.创建通道
 * 	3.创建fanout交换机
 * 	4.发送消息
 */
public class Producer {
    // 交换机名字
    public static final String NAME_FANOUT_TOPICS = "NAME_FANOUT_TOPICS";

    public static void main(String[] args) throws IOException, TimeoutException {
        //1.创建连接
        ConnectionFactory factory = new ConnectionFactory(); // 创建工厂
//            factory.setUsername(userName); // 用户名
//            factory.setPassword(password); // 用户密码
//            factory.setVirtualHost(virtualHost); // 虚拟主机
//            factory.setHost(hostName); // 端口
//            factory.setPort(portNumber); // 端口号

        Connection connection = factory.newConnection(); // 创建链接
        //2.创建通道
        Channel channel = connection.createChannel();

        //3.创建fanout交换机
        channel.exchangeDeclare(NAME_FANOUT_TOPICS, // 交换机名
                BuiltinExchangeType.TOPIC // 交换机类型
                );
        //4.发送消息


        channel.basicPublish(NAME_FANOUT_TOPICS, // 交换机名  使用默认交换机
                "A.token", // 队列名
                null, // 其他参数
                "01，01 收到请回答!".getBytes() //
                );
        channel.basicPublish(NAME_FANOUT_TOPICS, // 交换机名  使用默认交换机
                "info.ssa", // 队列名
                null, // 其他参数
                "01，01 收到请回答!".getBytes() //
        );
        channel.basicPublish(NAME_FANOUT_TOPICS, // 交换机名  使用默认交换机
                "info.ssa.ss", // 队列名
                null, // 其他参数
                "01，01 收到请回答!".getBytes() //
        );

        System.out.println("消息发送完毕!");
    }
}
